package database;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

import dbmanager.DBManager;
import dbmanager.GetIdName;

public class GetResultset 
{
	DBManager database;
	Vector<Object>Condition=new Vector<Object>();
	String tablename;
	GetIdName gid;
	String PL="pl";
	String tableid;
	String LOGICALOPERATOR="logicaloperator";
	
	public void setDBManager(DBManager database)
	{
		this.database=database;
		gid= new GetIdName(database);
		PL = gid.getId(PL);		
	}
	
	public void setdata(Vector<Object>Condition,String tablename)
	{
		this.Condition =Condition;
		this.tablename = tablename;
	}
	
	public String [] getRecordArray()
	{
		try 
		{
			tableid = gid.getId(tablename);
			Vector<Object>MasterField =new Vector<Object>();
			Vector<Object>PLField =new Vector<Object>();
			ResultSet rs =database.getSelect("select fieldname from command where msgtype='"+tablename +"' and process='add'");
			while(rs.next())
			{	
				MasterField.add(rs.getString("fieldname"));
			}
			rs=database.getSelect("select pv,vt from where pid='"+PL+"'mid='"+tablename );
			if(rs.next())
			{	
				String pl =rs.getString("pv");
				if(pl.equals("0"))
					pl =rs.getString("vt");
				else
					pl = gid.getItem(pl);
				ResultSet rs1 =database.getSelect("select fieldname from command where msgtype='"+pl +"' and process='add'");
				while(rs.next())
				{	
					PLField.add(rs1.getString("fieldname"));
				}	
			}
			Vector<Object>MasterCondition =new Vector<Object>();
			Vector<Object>PLcondition =new Vector<Object>();
			for(int i=0;i<Condition.size();i++)
			{
				Hashtable<Object, Object> conditionhash = (Hashtable<Object, Object>) Condition.get(i);
				Enumeration<Object>enumeration = conditionhash.keys();
				while(enumeration.hasMoreElements())
				{
					String key = enumeration.nextElement().toString();
					if(!key.equalsIgnoreCase(LOGICALOPERATOR))
					{
						if(MasterField.contains(key))							
							MasterCondition.add(conditionhash);
						else if(PLField.contains(key))
							PLcondition.add(conditionhash);
					}
				}
			}
			Generatejoin gj =new Generatejoin();
			gj.setDatabase(database);
			
			
			
		}
		catch (SQLException e) 
		{
			e.printStackTrace();
		}
		
		return null;
	}
	
	
}
